Title Case (titlecase)
titlecase
is a small tool that capitalizes English text according to a
style defined by John Gruber for post titles on his website Daring
Fireball. titlecase
runs on Linux, macOS, FreeBSD, NetBSD, and Windows. A
dependency free, single-file binary is built for each supported platform for
every release.
titlecase
is licensed under the MIT license.
Examples
% echo 'Being productive on linux' | titlecase
Being Productive on Linux
% echo 'Finding an alternative to Mac OS X — part 2' | titlecase
Finding an Alternative to Mac OS X — Part 2
% echo 'an example with small words and sub-phrases: "the example"' | titlecase
An Example With Small Words and Sub-Phrases: "The Example"
Command Line Usage
titlecase
reads lines of text from stdin and prints title cased versions
to stdout.
Usage as a Rust Crate
See the crate documentation.
Download
Pre-built titlecase
binaries are available for Linux, macOS,
FreeBSD, NetBSD, and Windows.
Building
Minimum Supported Rust Version: 1.30.1
If you have a stable Rust compiler toolchain installed you can install
the most recently released titlecase
with cargo:
% cargo install titlecase
Style
Instead of simply capitalizing each word titlecase
does the following
(amongst other things):
- Lower case small words like an, of, or in.
- Don't capitalize words like iPhone.
- Don't interfere with file paths, URLs, domains, and email addresses.
- Always capitalize the first and last words, even if they are small words or surrounded by quotes.
- Don't interfere with terms like "Q&A", or "AT&T".
- Capitalize small words after a colon.
Credits
This tool makes use of prior work by John Gruber, Aristotle Pagaltzis, and David Gouch.